package com.learn.Lock;

/**
 * 1.synchronized 锁的对象是方法的调用者
 * 2.static初始化就创建sms4.class，唯一存在class模板,synchronized锁住的就是他的调用者sms4.class
 * 3.无论多少都是只有一个锁对象
 *
 * class 是唯一模板
 * new 是一个对象
 */
public class Test04 {

    public static void main(String[] args) {
        sms4 s1 = new sms4();
        //sms4 s2 = new sms4();

        new Thread(()->s1.recv(),"B").start();
        new Thread(()->s1.send(),"A").start();

    }
}

class sms4{
    public static synchronized void send(){
        System.out.println("send");
    }
    public synchronized void recv(){
        System.out.println("recv");
    }
}